package com.example.ecs.core;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * ComponentKey注解用于指定组件的键类型
 * 当添加组件时，如果组件有此注解，则使用注解中指定的类作为键
 * 否则使用组件本身的类作为键
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface ComponentKey {
    Class<? extends Component> value();
}